Skip to content

Conversation

@cbmarini
Copy link
Collaborator

This PR gives the float_ function protected status with respect to operations from the pattern matcher and the transform and argument statements. For example,

CFunction f;
Symbol a;
Local F = 1.0;
id f?(?a) = g(?a);

does not match to the float_ function.

Furthermore, all statements that rely on the same compiler and execution routines -- DoArgument and execarg -- such as
argument, normalize, makeinteger, splitarg, factarg, and argtoextrasymbol, respect the same protected status of float_.

Note: at present, the protected status of float_ remains active even after the floating-point system has been closed using #endfloat. This behaviour may be relaxed in the future.

…ent, normalize, makeinteger, splitarg, factarg and argtoextrasymbol.

 - these functions make use of the same compiler function DoArgument and execarg during execution, so the fix is universal.
 - added a test for this.
@coveralls
Copy link

Coverage Status

coverage: 57.102% (+0.05%) from 57.055%
when pulling ef6855f on cbmarini:protect-float
into 42d314c on form-dev:master.

@cbmarini cbmarini merged commit ff45f97 into form-dev:master Nov 4, 2025
84 checks passed
@cbmarini cbmarini deleted the protect-float branch November 4, 2025 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants